Mask Generation Mechanism

ABSTRACT

A method is disclosed. The method includes generating a seed pattern which ensures one dot per column, computing an auto correlation function and performing pixel error processing. Pixel error processing includes performing multiple operations during each iteration to create visually pleasing halftone mask patterns which follow a one dot per column constraint.

FIELD OF THE INVENTION

The invention relates to the field of image reproduction, and inparticular, to generating human visual pleasing halftone masks.

BACKGROUND

The Direct Binary Search (DBS) algorithm is an iterative/recursivesearch heuristic that uses a perceptual filter, such as a Human VisualSystem (HVS) model, to minimize a perceived difference (error (ε))between a continuous tone image and its corresponding halftone image.Thus, the DBS algorithm is typically used to generate halftone imagesthat are visually pleasing to humans.

However, the DBS algorithm is a complex and computational expensivealgorithm. Due to the computational complexity of the algorithm, itsapplication has been limited to trial changes to either single toggle orsingle swap operations. Yet there are some instances in which multipletoggles (e.g., n>2) are necessary. An example of this is the case inwhich a constraint for the pattern is to ensure only one dot per column.Applications for this type of mask include ink jet flushing masks usedto ensure each nozzle is fired over the size of the mask to preventclogging of the nozzle.

Accordingly, an algorithm that features multiple trial operations inorder to generate a human visual pleasing mask having specificconstraints is desired.

SUMMARY

In a further embodiment, a method is disclosed. The method includesgenerating an initial seed pattern which ensures one dot per column,computing an auto correlation function and performing pixel errorprocessing. Pixel error processing includes multiple operations duringeach iteration to create visually pleasing halftone mask patterns whichfollow a one dot per column constraint.

BRIEF DESCRIPTION OF THE DRAWINGS

A better understanding of the present invention can be obtained from thefollowing detailed description in conjunction with the followingdrawings, in which:

FIG. 1 illustrates one embodiment of a printing network;

FIG. 2 illustrates one embodiment of a print controller;

FIG. 3 is a flow diagram illustrating one embodiment of a processfeaturing multiple trial operations;

FIG. 4 is a flow diagram illustrating a further of embodiment of amultiple trial operations process;

FIG. 5 illustrates one embodiment of an initial seed pattern;

FIGS. 6A and 6B illustrate embodiments of a final pattern; and

FIG. 7 illustrates one embodiment of a computer system.

DETAILED DESCRIPTION

A multiple trial operations process using DBS is described. In thefollowing description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be apparent, however, toone skilled in the art that the present invention may be practicedwithout some of these specific details. In other instances, well-knownstructures and devices are shown in block diagram form to avoidobscuring the underlying principles of the present invention.

Reference in the specification to “one embodiment” or “an embodiment”means that a particular feature, structure, or characteristic describedin connection with the embodiment is included in at least one embodimentof the invention. The appearances of the phrase “in one embodiment” invarious places in the specification are not necessarily all referring tothe same embodiment.

FIG. 1 is a block diagram illustrating a printing network 100. Network100 includes a host system 110 in communication with a printing system130 to print a sheet image 120 onto a print medium 180 (e.g., paper) viaa printer 160. The resulting print medium 180 may be printed in colorand/or in any of a number of gray shades, including black and white.

The host system 110 may comprise any computing device, such as apersonal computer, a server, or even a digital imaging device, such as adigital camera or a scanner. The sheet image 120 may be any file or datathat describes how an image on a sheet of print medium should beprinted. For example, the sheet image 120 may include PostScript data,Printer Command Language (PCL) data, and/or any other printer languagedata. The print controller 140 processes the sheet image to generate abitmap 150 for printing to the print medium 180 via the printer 160.

The printing system 130 may be a high-speed printer operable to printrelatively high volumes (e.g., greater than 100 pages per minute). Theprint medium 180 may be continuous form paper, cut sheet paper, and/orany other tangible medium suitable for printing. In one embodiment, theprinting system 130 includes the printer 160 that presents the bitmap150 onto the print medium 180 (e.g., via toner, ink, etc.) based on thesheet image 120.

The print controller 140 may be any system, device, software, circuitryand/or other suitable component operable to transform the sheet image120 for generating the bitmap 150 in accordance with printing onto theprint medium 180. FIG. 2 is a block diagram illustrating an exemplaryprint controller 140.

Referring to FIG. 2, print controller 140 includes an interpreter module212 and a halftoning module 214. In one embodiment, interpreter module212 and halftoning module 214 represent hardware used to implement printcontroller 140. However in other embodiments, the separate componentsmay represent logical blocks implemented by executing softwareinstructions in a processor of the printer controller 140. Accordingly,the invention is not intended to be limited to any particularimplementation as such may be a matter of design choice.

The interpreter module 212 is operable to interpret, render, rasterize,or otherwise convert images (i.e., raw sheetside images such as sheetimage 120) of a print job into sheetside bitmaps. The sheetside bitmapsgenerated by the interpreter module 212 are each a two-dimensional arrayof pixels representing an image of the print job (e.g., a continuoustone image (CTI)), also referred to as full sheetside bitmaps.

The two-dimensional pixel arrays are considered “full” sheetside bitmapsbecause the bitmaps include the entire set of pixels for the image. Theinterpreter module 212 is operable to interpret or render multiple rawsheetsides concurrently so that the rate of rendering substantiallymatches the rate of imaging of production print engines.

Halftoning module 214 is operable to represent the sheetside bitmaps aspatterns of ink drops. For example, halftoning module 214 may convertthe continuous tone sheetside bitmap pixels to a pattern of ink dropsfor application to the print medium 180 (e.g., paper). Once computed,the halftoning module 214 transfers the converted sheetside bitmaps tothe print head controllers of the printer 160 to apply the ink drop(s)to the tangible medium 180.

The output of printer 160 applied to medium 180 produces a visuallypleasing appearance of the rendered sheetmap image. For example, aninitial seed pattern is typically required to be provided to halftoningmodule 214 in order to create a halftone mask. Further, masks used onink jet printers may need to disguise flushing at printer 160 printheads.

A major issue with ink jet print heads is the clogging of nozzles thatcreate white streaks on medium 180. Clogged nozzles are caused by dryingof ink, accumulated paper dust at the nozzle surface, increase in inkviscosity, or intrusion of air bubbles, etc. Thus, a simple way toprevent the nozzles from clogging is to eject ink from every nozzlefrequently.

Since every sheet will have different content, the required frequency ofink ejection from each nozzle may not be guaranteed by just the sheetcontent. For example, nozzles at the edges or between pages may not beused to print any data. Thus, ink must be ejected forcefully from thenozzles of the print head throughout the printing process (e.g.,“flushing”).

One flushing process, referred to as a random flushing method, flushesdrops out of each nozzle frequently throughout the production. Randomflushing produces a noisy background on medium 180. Consequently, it isvery difficult to create a visually pleasing flushing pattern withoptimized ink flushing (e.g., not over or under flushing).

According to one embodiment, a visually pleasing mask is generated viamultiple trial operations of the DBS algorithm. In one embodiment, themask is generated at host system 100 or another host system in network100. However, the mask may be generated at a third party computer systemand transferred to network 100.

As discussed above, the DBS algorithm minimizes error represented as:ε=|h(x,y)**g(x,y)−h(x,y)**f(x,y)|² dxdy, where ** denotes 2-dimensionalconvolution, h(x,y) represents the point spread function (PSF) of thehuman visual system or other suitable filtering function, f(x,y) is thecontinuous tone original image and g(x,y) is the corresponding renderedhalftone image, which are assumed to lie between 0 (white) and 1(black).

The halftone image itself incorporates a printer modelg(x,y)=Σ_(m)Σ_(n)g[m, n]p(x−mX, y−nX), which represents a device withPEL spacing X, where X is the inverse of the printer addressability DPI,and a spot profile p(x,y) having superposition interaction betweenoverlapping spots. The digital halftone image g[m,n] may have anyabsorptance value between 0 (white) and 1 (black). According to oneembodiment, the system is binary and the halftone image g[m,n] is either0 (white) or 1 (black).

The DBS algorithm requires several passes (e.g., iterations through animage before converging to the final halftone), and starts by generatingan initial halftone image. Subsequently, a local improvement to thehalftone is produced by swapping and toggling. Where swapping is theoperation of switching the colors of nearby pixels and toggling is theoperation of changing the polarity of individual pixels.

The cost function may be represented as ε=<{tilde over (e)}, {tilde over(e)}>, where <, > denotes the inner product and {tilde over(e)}(x,y)=h(x,y)**(g(x,y)−f(x,y)) represents the perceptually filterederror. In such an embodiment, the continuous tone image f(x,y) may alsobe expressed in terms of its samples f[m,n]. Thus, the perceived erroris given by {tilde over (e)}(x,y)=Σ_(m,n)e[m, n]p(x−mX, y−nX), wheree[m,n]=g[m,n]−f[m,n], and {tilde over (p)}(x,y)=h(x,y)**p(x,y) is theperceived printer spot profile.

Considering the effect of a trial change. The new error will be {tildeover (e)}′={tilde over (e)}++Δ{tilde over (e)}. Substituting this andexpanding the inner product results in ε′=ε+2<Δ{tilde over (e)},{tildeover (e)}>+<Δ{tilde over (e)},Δ{tilde over (e)}>, for the assumed casewhere all signals are real-values. Either a toggle at pixel (m₀, n₀) ora swap between pixels (m₀,n₀) and (m₁,n₁) can be represented asg′[m,n]=g[m,n]+Σ_(i)a_(i)δ[m−m_(i), n−n_(i)]. As a result,

Δ{tilde over (e)}(x,y)=Σ_(i) a _(i) {tilde over (p)}(x−m _(i) X,y−n _(i)X), and

Δε=2Σ_(i)

[m _(i) ,n _(i)]+Σ_(i,j) a _(i) a _(j)

[m _(i) −n _(i) −n _(i)], where

[m,n]=<{tilde over (p)}(x,y),{tilde over (e)}(x+mX,y+nX)>, and

[m,n]=<{tilde over (p)}(x,y),{tilde over (p)}(x+mX,y+nX)>.

According to one embodiment, an improved HVS model is employed thatoffers enhanced halftoning results. This model is based on mixedGaussian functions whose radial coordinate functional form is:

[r]=k_(i)exp(−(r²/2σ₁ ²)+k₂exp((−r²/2σ₂ ²), where the constants k1; k2;σ₁; σ₂ are 43.2, 38.7, 0.02, 0.06 respectively. Assuming that

is symmetric, then:

Δε=2Σ_(i)

[m _(i) ,n _(i)]+Σ_(i<j) a _(i) a _(j)

[m _(i) −m _(i) ,n _(i) −n _(j)])+Σ_(i) a _(i) ²

,[0,0].

Assuming that a_(i)=±1, then the term Σ_(i)a_(i) ²

,[0,0]=n

,[0,0]. Each a_(i) represents the amount of change in gray level toggle,defined as a_(i)=g_(new)[m_(i), n_(i)]−g_(old)[m_(i), n_(i)].Particularly, if the pixel toggles between 0 and 1, a_(i)=1−2g[m_(i),n_(i)]=±1.

In past DBS applications, trial changes were limited to either singletoggle or swap operations only due to the computational complexity ofthe algorithm. In one embodiment, a swap can be replaced by two toggles.Further, there are some instances where multiple toggles (n>2) arenecessary. For instance, an embodiment may define a mask patternrequirement to ensure that the pattern include only one dot per column.To create this case, the pattern is started with an initial patternwhich ensures one dot per column. Subsequently, multiple operations areperformed at every iteration to create a visually pleasing mask whichsatisfies the one dot per column constraint.

FIG. 3 is a flow diagram illustrating one embodiment of performingmultiple trial operations for the DBS algorithm. At processing block310, an initial seed pattern is generated (e.g., g of size N×N withg(m,n)=1, where m=n and m=1, 2 . . . N). FIG. 5 illustrates oneembodiment of an initial seed pattern. At processing block 320, theauto-correlation function

[m,n] is computed. At processing block 330, the initial error

[m,n] is computed.

At processing block 340, pixel error processing is performed. FIG. 4 isa flow diagram illustrating one embodiment of performing pixel errorprocessing. At processing block 410, an “ON” pixel locationg(m_(x),n_(α)) in column α is found, where α=1, 2, . . . , N. Atprocessing block 420, an “ON” pixel location g(m_(y),n_(β)) in theneighbor column β is found. At processing block 430, a change in

[m,n] is computed.

In one embodiment, the change in

[m,n] is computed by swapping pixel g(m_(x),n_(α)) with g(m_(x),n_(β))and swapping pixel g(m_(y),n_(β)) with g(m_(y),n_(α)). Note that becauseof the one dot per column condition, (m_(x),n_(β)) and (m_(y),n_(α)) areblank pixels.

At decision block 440, it is determined whether there are additional βcolumns to process. If so, the “ON” pixel location g(m_(y),n_(β)) in thenext neighboring column β is found (processing block 420) and change in

[m,n] is computed (processing block 430).

If no additional β columns are available to process, the operation withmaximum error decrease in Δε is found, processing block 450. Atprocessing block 460,

[m,n] and g are updated. At decision block 470, it is determined whetherthere are additional α columns to process. If so, control is returned toprocessing block 410 where the “ON” pixel location g(m_(x),n_(α)) in thenew column α is found.

Referring back to FIG. 3, it is determined, once the pixel errorprocessing has been performed, whether an end criterion has been met,decision block 350. If the criterion has not been met, control isreturned to processing block 340 for additional pixel error processing.Otherwise, the process is completed.

Thus, when no operations are performed in the last iteration, the endcriteria is met. Any accepted operation requires updating of

by

[m,n] ′=

[m,n]+a_(i)

[m−m_(i),n−n_(i)] and g for (m_(x), n_(α)), (m_(x),n_(β)), (m_(y),n_(β))and (m_(y),n_(α)) pixel locations at processing block 460.

FIGS. 6A and 6B illustrate embodiments of a final pattern. FIG. 6Aillustrates one embodiment of a final pattern that is visually pleasingand has only one dot per row and column. In a further embodiment, thealgorithm is to maintain visually pleasing behavior when tiled in alldirections. FIG. 6B illustrates one embodiment of a final pattern tiled3×3 to form a larger pattern.

FIG. 7 illustrates a computer system 700 on which print controller 140and/or host system 110 may be implemented. Computer system 700 includesa system bus 720 for communicating information, and a processor 710coupled to bus 720 for processing information.

Computer system 700 further comprises a random access memory (RAM) orother dynamic storage device 725 (referred to herein as main memory),coupled to bus 720 for storing information and instructions to beexecuted by processor 710. Main memory 725 also may be used for storingtemporary variables or other intermediate information during executionof instructions by processor 710. Computer system 700 also may include aread only memory (ROM) and or other static storage device 726 coupled tobus 720 for storing static information and instructions used byprocessor 710.

A data storage device 725 such as a magnetic disk or optical disc andits corresponding drive may also be coupled to computer system 700 forstoring information and instructions. Computer system 700 can also becoupled to a second I/O bus 750 via an I/O interface 730. A plurality ofI/O devices may be coupled to I/O bus 750, including a display device724, an input device (e.g., an alphanumeric input device 723 and or acursor control device 722). The communication device 721 is foraccessing other computers (servers or clients). The communication device721 may comprise a modem, a network interface card, or other well-knowninterface device, such as those used for coupling to Ethernet, tokenring, or other types of networks.

The above-described algorithm provides for uniform and more flexibleseed patterns for high quality halftone development and flushingpatterns.

Embodiments of the invention may include various steps as set forthabove. The steps may be embodied in machine-executable instructions. Theinstructions can be used to cause a general-purpose or special-purposeprocessor to perform certain steps. Alternatively, these steps may beperformed by specific hardware components that contain hardwired logicfor performing the steps, or by any combination of programmed computercomponents and custom hardware components.

Elements of the present invention may also be provided as amachine-readable medium for storing the machine-executable instructions.The machine-readable medium may include, but is not limited to, floppydiskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs,RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media orother type of media/machine-readable medium suitable for storingelectronic instructions. For example, the present invention may bedownloaded as a computer program which may be transferred from a remotecomputer (e.g., a server) to a requesting computer (e.g., a client) byway of data signals embodied in a carrier wave or other propagationmedium via a communication link (e.g., a modem or network connection).

Whereas many alterations and modifications of the present invention willno doubt become apparent to a person of ordinary skill in the art afterhaving read the foregoing description, it is to be understood that anyparticular embodiment shown and described by way of illustration is inno way intended to be considered limiting. Therefore, references todetails of various embodiments are not intended to limit the scope ofthe claims, which in themselves recite only those features regarded asessential to the invention.

What is claimed is:
 1. An article of manufacture comprising amachine-readable medium including data that, when accessed by a machine,cause the machine to perform operations comprising: generating aninitial seed pattern; computing an auto correlation function; andperforming pixel error processing, by: finding a first pixel in a firstcolumn that is in an ON state; finding a first pixel in a neighboringcolumn that is in the ON state; and computing a change in pixel error.2. The article of manufacture of claim 1 wherein computing the change inpixel error comprises: swapping the first pixel in the first column witha second pixel of the same row in the neighboring column; and swappingthe first pixel in the neighboring column with a second pixel of thesame row in the first column.
 3. The article of manufacture of claim 1wherein performing pixel error processing further comprises: determiningif there are additional neighboring columns to process; finding anoperation with maximum error decrease if there are no additionalneighboring column to process; and updating the halftone and the changein pixel error.
 4. The article of manufacture of claim 3 comprising amachine-readable medium including data that, when accessed by a machine,further cause the machine to perform operations comprising: finding afirst pixel in a second neighboring column that is in the ON state ifthere are additional neighboring columns to process; and computing achange in pixel error.
 5. The article of manufacture of claim 4comprising a machine-readable medium including data that, when accessedby a machine, further cause the machine to perform operationscomprising: determining if there are additional columns to process;finding an operation with maximum error decrease if there are noadditional neighboring column to process; and finding a first pixel in asecond column that is in the ON state.
 6. The article of manufacture ofclaim 1 comprising a machine-readable medium including data that, whenaccessed by a machine, further cause the machine to perform operationscomprising computing an initial change in pixel error.
 7. The article ofmanufacture of claim 6 comprising a machine-readable medium includingdata that, when accessed by a machine, further cause the machine toperform operations comprising determining if an end criteria has beenmet after performing pixel error processing.
 8. The article ofmanufacture of claim 7 comprising a machine-readable medium includingdata that, when accessed by a machine, further cause the machine toperform operations comprising performing additional pixel errorprocessing if the end criteria has not been met upon.
 9. The article ofmanufacture of claim 8 wherein the end criteria has been met when nofurther operations are performed.
 10. The article of manufacture ofclaim 1 wherein the initial seed pattern comprises has one pixel in eachcolumn that is in the ON state.
 11. A system comprising: a processor togenerate an initial seed pattern, compute an auto correlation functionand perform pixel error processing by finding a first pixel in a firstcolumn that is in the ON state, finding a first pixel in a neighboringcolumn that is in the ON state and computing a change in pixel error.12. The system of claim 11 wherein computing the change in pixel errorcomprises swapping the first pixel in the first column with a secondpixel of the same row in the neighboring column and swapping the firstpixel in the neighboring column with a second pixel of the same row inthe first column.
 13. The system of claim 11 wherein the processordetermines if there are additional neighboring columns to process, findsan operation with maximum error decrease if there are no additionalneighboring column to process and updates the halftone and the change inpixel.
 14. The system of claim 13 wherein the processor finds a firstpixel in a second neighboring column that is in the ON state if thereare additional neighboring columns to process and computes a change inpixel error.
 15. The system of claim 14 wherein the processor determinesif there are additional columns to process, finds an operation withmaximum error decrease if there are no additional neighboring columns toprocess and finds a first pixel in a second column that is in the ONstate.
 16. The system of claim 11 wherein the processor computes aninitial change in pixel error.
 17. The system of claim 16 wherein theprocessor determines if an end criteria has been met after performingpixel error processing.
 18. The system of claim 7 wherein the processorperforms additional pixel error processing if the end criteria has notbeen met upon.
 19. The system of claim 18 wherein the end criteria hasbeen met when no further operations are performed.
 20. The system ofclaim 11 wherein the initial seed pattern comprises has one pixel ineach column that is in the ON state.